home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr37
/
ho5m.zip
/
WIZARD.TXT
< prev
Wrap
Text File
|
1994-06-17
|
43KB
|
1,199 lines
The HANDS ON Wizard manual Page 1
Updated June, 1994
This Product is Shareware, if you continue to use it
Please Legalise your usage through Registration.
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| Member
Table of Contents page #
1. Introduction 1
2. Script Files 2
2.1 Script Commands 3
2.2 An example 6
3. Using Wizard with Batch Files 11
4. SHOW - debugging scripts 11
5. Feeding the Wizard 13
6. The Apprentice 15
7. SUPPORT and the ASP 15
Appendix A - Special keys 16
Appendix B - Acknowledgments and history 18
Appendix C - ShareWare Vendor Notice (if any)
1. Introduction
The Wizard is a program which will run any other program, and
make it appear to that program that a user is typing commands
at the keyboard. Actually the "typing" is done automatically
by the Wizard as specified in a script file. The Wizard's
scripts also allow it to monitor the contents of the
computer's screen and elapsed time and take actions based on
the screen contents and/or the time. The Wizard should work
with any program that uses DOS or the BIOS for keyboard input,
or that uses the BIOS data area directly. However, programs
that interface directly with the keyboard hardware will not
The HANDS ON Wizard manual Page 2
work with it. Fortunately very few programs work this way.
Wizard is commonly abbreviated as WIZ, and you can also just
call it 'Wizard'.
There are two primary Wizard distributions:
1) with the Hands On remote access package.
2) on its own.
Typical usage of Wizard might be:
(Wizard is abbreviated as WIZ here)
WIZ script.scr kermit
which would cause Wizard to read in the script file name
'script.scr' and then run kermit. While kermit was running,
Wizard would "type" whatever was in the script file. When
kermit terminated (either because the script file included a
command to terminate the program, or because the user manually
terminated kermit) Wizard would also terminate. This has the
benefit that the user does not need to worry about whether a
TSR is loaded; Wizard is loaded for just long enough to run
the application, and unloads itself as soon as the application
has finished.
If for any reason more than one application needs to be used,
Wizard can be run as:
WIZ script.scr command
which will run another copy of the DOS command interpreter.
The Wizard script can then run as many applications as
necessary, and finish by
entering: EXIT
to leave the command interpreter (and hence also terminate
Wizard).
You can pass a complete command line with parameters to your
application - for example, if you would normally start an
application as: program arg1 arg2 arg3
then simply use: WIZ script.scr program arg1 arg2 arg3
2. Script Files
Normally, script files contain ordinary letters: each letter
is interpreted as the corresponding key on the keyboard. Thus
a
script: abc
The HANDS ON Wizard manual Page 3
would cause the keys 'a', 'b' and 'c' to be "typed".
However, end-of-line is ignored in script files, so there
needs to be some way to specify the <ENTER> key (and indeed
the many other special keys that are not normal printable
ASCII characters). These are indicated by enclosing a
description of the key inside '<' and '>'.
A number of special keys are permitted. Some examples
follow:
<Ctrl-@> <X> <Alt-180> <Alt-P>
<Ctrl-A> <Y> <Alt-181> <Alt-Q>
There is a complete list in Appendix A.
These special keys must be entered exactly as shown (with the
exception that case is not significant): for example, Wizard
will not recognize <Control-Up> or <Ctrl Up> - it must be
<Ctrl-Up> or <ctrl-up> etc.
There is no need to enclose normal printable characters within
'<' and '>', although it is permitted. For example, the
following two lines are equivalent:
dir<enter>
<d><i><r><enter>
Two characters have a special meaning in script files: '<'
and '{'. These must be written as <<> and <{> respectively.
Blank spaces in script files will be "typed" as the <space>
key whenever they appear. This can be confusing if there is
trailing white space at the end of a line, or if you leave a
blank between two commands (see below). The output of the
SHOW command (again, see below) will make these space
characters more obvious...
2.1 Script Commands
In addition to keys, Wizard provides a number of commands to
do more exotic things such as checking for text on the screen
so that the "typing" can be more intelligent. You can use the
cpscrn tool, PRTSCR (print screen), or we can provide other
screen location and grabbing tools as needed. Commands are
enclosed in '{' and '}'. The following commands are
supported:
The HANDS ON Wizard manual Page 4
AFTER seconds Go to a label if timer has been running for more
than a specified number of seconds. For example, here is a
script to wait until it finds C:\> in the bottom left corner
of the screen, but with a timeout after 5.5 seconds:
{zero}
{label loop}
{after 5.5 abort}
{not_at (24,0) "C:\\>" loop}
{label abort}
Notice that the timer is zeroed before the start of the loop.
AT (row, col) Go to a label if the text at a specified
position on the screen matches. Syntax is {at (line,column)
"text" label}. Line and column are numbered from 0. The text
to match is enclosed in quotes. To match a double quote, use
\". To match a \, use \\. For example, the following script
waits until it finds C:\> or C:\DOS> in the bottom left corner
of the screen:
{label loop}
{at (24,0) "C:\\>" root}
{at (24,0) "C:\\DOS>" dos}
{goto loop}
(Naturally "root" and "dos" must be labels elsewhere in the
script!)
BEFORE time Go to a label if timer has been running for less
than a specified number of seconds. For example, to go to a
label "loop" if the timer has been running less than 10
seconds use:
{before 10.0 loop}
CUT Record the contents of the screen in a given location.
The specified number of characters, starting at the specified
location, will be saved for later playback using the "paste"
command. The syntax is:
{cut buffer (line,col) number}
Example: {cut 1 (0,0) 20}
to record 20 characters starting from the top left corner and
store this in buffer number 1. The number of buffers is
limited; currently it is 5 (0-4 inclusive). Trailing spaces
The HANDS ON Wizard manual Page 5
are eliminated; however, if the entire text is all spaces
then a single space is retained.
DISABLE Disable the keyboard, so that the user cannot
interfere with what is happening. The syntax is: {disable}
Make sure you call {enable} afterwards, or the user will be
locked out!
ENABLE Enable the keyboard, so that the user can type
normally. This is the default. However, if the user types
while Wizard is "typing" the result is likely to be
confusion! The syntax is: {enable}
END Terminate the "typing" of keys. Interpretation of the
script will just stop here. This happens automatically at the
end of the script, but saves using an artificial {goto end} if
the end of the script is error handling code. Example: {end}
GOTO Goto label. Instead of moving on to the next key or
command in the script, go to the specified label and continue
from there. For example, the following script will keep on
"typing" dir<enter> indefinitely:
{label loop}
dir<enter>
{goto loop}
HOLD Hold shift keys. Some applications (such as Hands On)
check the status of various shift keys. The possible shift
keys are: left, right, ctrl or control, alt, num (for
numlock), scroll, caps and insert. For example, to "hold
down" left shift, right shift, control and alt, use:
{hold left right ctrl alt}
This command does not change the status of any of the shifts
that are not mentioned. See "release" for key release.
LABEL Record the position of a named label (see the other
commands for uses). For example, to create a label named
"loop" use:
{label loop}
The HANDS ON Wizard manual Page 6
Label names are case sensitive.
Normally label names cannot be reused. However, if the label
name starts with a '$' character then the name can be reused,
and any reference will be to the most recent label (or to the
first one if no labels with this name have been encountered
yet).
NOT_AT Go to a label if the text at a specified position on
the screen does not match. Syntax is {not_at (line,column)
"text" label}. Line and column are numbered from 0. The text
to match is enclosed in quotes. To match a double quote, use
\". To match a \, use \\. For example, the following script
waits until it finds C:\> in the bottom left corner of the
screen:
{label loop}
{not_at (24,0) "C:\\>" loop}
PASTE Play back the characters saved by the most recent "cut"
command as if typed from the keyboard. The syntax is: {paste
buffer}
Example: {paste 1}
to paste back the contents of buffer 1.
REBOOT Reboot the PC. This is a drastic way to recover from
an application that is not responding as expected! Usage:
{reboot}
RELEASE Release shift keys. This is the opposite of "hold";
it releases the specified keys. For example, to release num
lock use: {release num} This command does not change the
status of any of the shifts that are not mentioned. See
"hold" for a list of the shift keys supported.
RESULT Set the DOS result code. This is used to return an
"errorlevel" that can be used from a DOS batch file. For
example, to return a result code of 2 use: {result 2}
SPEED Set "typing" speed. Normally, one key is "typed" every
0.055 seconds, and this is the fastest possible speed.
However, if your application requires slower typing, the gap
The HANDS ON Wizard manual Page 7
between characters can be set anywhere up to 14 seconds. For
example, to type at 4 keys per second, use: {speed 0.25}
WAIT Wait for X seconds (0 < X < 117,951,481). For example,
to pause for half a second, use: {wait 0.5} Alternatively,
wait for a given clock time. For example, to wait until
3:30:25 in the afternoon, use: {wait 15:30:25}
ZERO Zero timer (see the following commands for uses). For
example:
{zero}
2.2 An example
Here is a real life example of a script file which will run
Hands On (eg HO.exe) to retrieve a file automatically from a
remote PC:
{zero}
{result 4}
{label $wait}
{after 60 continue}
{not_at (24,0) "C:\\" $wait}
{hold left right ctrl alt}
{label $wait}
{not_at (23,66) "Press key: " $wait}
{release left right ctrl alt}
<pgdn>
temp.dat<enter>
{zero}
{label $wait}
{after 10 abort_start}
{not_at (5,18) "File Transfer in Progress..." $wait}
{label ok}
{zero}
{label $wait}
{after 600 abort_mid}
{at (0,73) "Partial" abort_no_file}
{at (5,18) "File Transfer in Progress..." $wait}
{result 0}
{label continue}
The HANDS ON Wizard manual Page 8
{hold left right ctrl alt}
{label $wait}
{not_at (23,66) "Press key: " $wait}
{release left right ctrl alt}
<F10>3
{end}
{label abort_start}
{result 1}
{zero}
{label $wait}
< >
{at (4,0) " Type <ESC> to continue:" escape}
{at (5,18) "File Transfer in Progress..." ok}
{after 10 continue}
{goto $wait}
{label escape}
<esc>
{goto continue}
{label abort_mid}
{result 2}
1
{zero}
{label $wait}
{at (2,0) " Remove incomplete" yes}
{after 5 continue}
{goto $wait}
{label yes}
y
{goto continue}
{label abort_no_file}
{result 3}
1
{goto continue}
Now the same script with an explanation:
Start by waiting for Hands On (HO) to dial, establish a link,
take control of the remote PC, and transmit the screen of the
remote PC. The remote PC is assumed to be at the DOS command
line prompt, and this prompt is assumed to be at the bottom
left corner of the screen.
{zero}
Zero timer so that the "after" command will work correctly.
{result 4}
The HANDS ON Wizard manual Page 9
If a timeout occurs, then we want to return errorlevel 4 to
DOS.
{label $wait}
Use a reusable label name (purely to save needing to invent a
whole lot of unique label names).
{after 60 continue}
If the desired text does not appear within 60 seconds then
give up.
{not_at (24,0) "C:\\" $wait}
If the desired text has not yet appeared then go back to the
start of the loop.
Bring up HO's local menu, select a file transfer, and specify
the name of the file.
{hold left right ctrl alt}
To get HO's attention, all four shift keys must be held down
at one time.
{label $wait}
{not_at (23,66) "Press key: " $wait}
Loop until the local menu appears...
{release left right ctrl alt}
No need for the shift keys any more.
<pgdn>
Select a file download.
temp.dat<enter>
Specify the name of the file to be downloaded.
Wait for the file transfer to commence.
{zero}
{label $wait}
{after 10 abort_start}
If it takes more than 10 seconds then something has gone badly
The HANDS ON Wizard manual Page 10
wrong, so give up!
{not_at (5,18) "File Transfer in Progress..." $wait}
Wait for the file transfer to complete.
{label ok}
This label is so we can resume if we find we can during error
processing.
{zero}
{label $wait}
{after 600 abort_mid}
If the file transfer has taken more than 10 minutes then give
up and abort it.
{at (0,73) "Partial" abort_no_file}
If the file did not exist (and hence could not be downloaded)
then give up.
{at (5,18) "File Transfer in Progress..." $wait}
Keep waiting as long as the transfer is happening.
Success! The file transfer has completed. Terminate the
session.
{result 0}
Return a success errorlevel to DOS.
{label continue}
Resume here after error processing.
{hold left right ctrl alt}
{label $wait}
{not_at (23,66) "Press key: " $wait}
Get into HO's local command menu.
{release left right ctrl alt}
<F10>3
Exit and hang up.
{end}
The HANDS ON Wizard manual Page 11
Stop here (just in case HO takes a moment to terminate, so
that we don't go on and start typing any of the error
processing stuff).
The file transfer never got started.
{label abort_start}
{result 1}
{zero}
{label $wait}
< >
The space key (actually any key would do) causes HO to give up
waiting for the transfer to commence.
{at (4,0) " Type <ESC> to continue:" escape}
This is part of the message HO gives when a transfer was
aborted this way...
{at (5,18) "File Transfer in Progress..." ok}
We were just too impatient! The transfer has started after
all. Resume normal operations.
{after 10 continue}
If there is no response then try to see if we can terminate
anyway... (hopefully this would never be required)
{goto $wait}
{label escape}
<esc>
{goto continue}
The file transfer took too long (presumably due to data
transmission errors).
{label abort_mid}
{result 2}
1
Option 1 tells HO to abort the transfer.
{zero}
{label $wait}
{at (2,0) " Remove incomplete" yes}
HO should ask if we want to remove the incomplete file (which
we do).
{after 5 continue}
The HANDS ON Wizard manual Page 12
If no response after 5 seconds then try to abort anyway...
{goto $wait}
{label yes}
y
{goto continue}
The file did not exist on the remote PC.
{label abort_no_file}
{result 3}
1
Abort the transfer, then terminate HO.
{goto continue}
If a script file contains any error, then Wizard will reject
it and immediately return an errorlevel of 255. Use SHOW to
help locate the cause of the error (look for SHOW below ).
3. Using Wizard with Batch Files
Because Wizard can return an errorlevel for DOS, it is
possible for a batch file to determine what went on during a
Wizard (wiz.exe) session. For example, here is a batch file
that might be used with the example Hands On (ho.exe) file
transfer above:
@echo off
WIZ sample.scr HO.exe site.HO
if errorlevel 255 goto bad_script
if errorlevel 4 goto no_HO
if errorlevel 3 goto abort_no_file
if errorlevel 2 goto abort_mid
if errorlevel 1 goto abort_start
echo Success!
goto done
:bad_script
echo Bad Wizard script
goto done
:no_HO
echo Could not establish HO link
goto done
:abort_no_file
echo Aborted due to file not found
goto done
:abort_mid
echo Aborted mid-file
goto done
The HANDS ON Wizard manual Page 13
:abort_start
echo Aborted before starting transfer
goto done
:done
4. SHOW - debugging scripts
SHOW is a program to assist with debugging Wizard scripts.
Usage is SHOW <script file name>
For example, given the following script in a file SAMPLE.SCR:
{label loop}{not_at (24,0) "C:\\>" loop}
the command: show sample.scr would produce the output:
{label loop}
{not_at (24,0) "C:\\>" loop}
SHOW is useful for locating errors in script files. For
example, given the following script:
{zero}
{label loop}
{aftera 5.5 abort}
{not_at (24,0) "C:\\>" loop}
{label abort}
SHOW would produce the output:
unknown command: 'aftera'
Script file:
{zero}
{label loop}
Error in script file!
As another example, given the script:
{zero}
{label loop}
{after 5.5 abort}
{not_at (24,0) "C:\\>" loop}
{label loop}
The HANDS ON Wizard manual Page 14
SHOW would produce the output:
duplicate label 'loop'
Script file:
{zero}
{label loop}
{after 5.49 }
{not_at (24,0) "C:\\>" loop}
Error in script file!
Observe that in all cases SHOW stops at the first error it
finds, tells you what the error was, and then lists everything
up to the position at which the error occurred.
5. Feeding the Wizard
The Wizard feeder feeds text file information into wizard
script files. For example if you have a file containing a
list of (lets call it a response file and give it the name
TRANSFER.TEL) a number of other files to be transferred to
another machine as in:
\BACKUP\BACKUP.1
\OTHER\OR\SOMEFILE
\ORIG\WORKFILE
or if you produced it with the telemenu program, the
file might look like:
[TRANSFER]
\BACKUP\BACKUP.DAT
\OTHER\OR\SOMEFILE
\ORIG\WORKFILE
; The NAMES and ADDRESS dBase databases will
; be moved to D:\STORAGE\
[MOVE D:\STORAGE\]
NAMES.DBF
ADDRESS.DBF
The [transfer] is used to separate the file transfer section
from possible copy, move, delete sections that can be
automatically created using the telemenu.
You can use the feeder to read in the individual lines from
the response file and insert the lines in a specified Wizard
The HANDS ON Wizard manual Page 15
script file, so the Wizard will use the inserted information.
The feeder runs the Wizard with the altered script file for
each line in the response file, then restores the original
script file when the job is done. This gives you the
capability to produce and use dramatically simpler Wizard
script files. It also give you the capability to transfer any
number of files from anywhere on one computer system to
another.
The following script file was taken from an earlier example,
with 'temp.dat' replaced by 'DUMMY_VALUE'. Given the correct
instructions the feeder will replace DUMMY_VALUE with each
line, one at a time, from the response file and run the Wizard
on the altered script file.
The dummy_value replacement is case sensitive. Be careful
with your upper and lower case usage.
{hold left right ctrl alt}
{label $wait}
{not_at (23,66) "Press key: " $wait}
{release left right ctrl alt}
<pgdn>
DUMMY_VALUE<enter>
{zero}
{label $wait}
{after 10 abort_start}
{not_at (5,18) "File Transfer in Progress..." $wait}
You provide setup and runtime instructions to the Wizard
feeder in two places.
1 The Feeder uses the TELE.INI configuration file, as repeated
below:
[CONTROLLER] ; The feeder uses the [controller] section
RUN WIZ sample.scr ; run wiz.exe with the sample.scr
FILE sample.scr ; Confirms the file name
EXCHANGE dummy_value ; the value to be replaced
RESPONSE transfer.tel ; the name of the response file
CHDIR yes ; change directories as it runs
ERROR 2 ; quit on DOS error code number 2
The feeder will actually run 'wiz sample.scr' with the changed
'sample.scr'. It does not check that the file names
(sample.scr here) are the same in the two places.
The other different item is 'CHDIR', which is a switch to
The HANDS ON Wizard manual Page 16
change directories as the feeder runs. You can enter YES or
NO. If you enter YES the feeder strips the directory names
from file names and itself changes to the directories. So
\SOMEDIR\backup_file is fed to the Wizard as just
'backup_file' in the script file while the feeder is in the
\SOMEDIR directory. There is no command line equivalent to
'CHDIR'.
2 The Feeder uses command line parameters or instructions, as
show below:
Usage is: ' WIZFEED -I -D -R -S -Q## -H ? '
-Ifile for an alternate .Ini file. TELE.INI is the default.
-D Dummy_value to be exchanged in the script file.
-Rfile alternate Response file name.
-S to Swap WIZFEED to disk before running other software.
-Q# Quit on DOS error number. DOS returns 0-255.
-H or ? this Help or usage.
-Isome_file is used to replace the TELE.INI with some other
'some_file' setup file.
-DEXCHANGE_VALUE allows you to over-ride the value given in
the TELE.INI setup file.
-Rsome_name tells the feeder to over-ride the file name in the
TELE.INI setup file with the response file name provided.
-S tells the feeder to swap all but 2k of itself out of memory
before running the Wizard, or other, program.
-Q23 would tell the feeder to quit if it received a DOS error
code of 23 after running the Wizard. The default value is
300.
-H or ? are used to display the usage on screen.
6. The Apprentice
The Wizard's Apprentice is designed to be a kinder, gentler,
bigger, and dumber, variant of the Wizard. It is also
designed to run on machines that lock up running the Wizard.
Some software corrupts a machine's innards enough that even
keyboard diagnostic software will lock-up the machine. The
current version of the APPrentice (app.exe) is a true TSR, or
resident, program.
The HANDS ON Wizard manual Page 17
Some features:
- More flexibility looking for a specified string.
Anywhere on a row, or on the screen.
- Ability to change scripts on the fly.
- Ability to run multiple programs from one script.
Its command line usage follows:
Usage: APP -C -D9 -E -H -M9999 -Pscript -TS ? -U
-C Clock time
-D9999 Delay time
-E add an Enter or return to each line
-H or ? Help as seen here
-M9999 runtime Memory bytes
-Rsome Run some program, up to 15 characters
-Sfile use the Script file
-TS Timer Seconds instead of milliseconds
-U Unload the program from memory
Unload hotkey leftshift-rightshift-U
However, the APPrentice is not included in the current
release, but is available on request. We are comtemplating
merging it into a future release of the Wizard instead of
introducing more tools. Yell for it if you have registered
the product and need it.
7. SUPPORT and the ASP
Please consider reporting the circumstances, preferably in
written form, to technical support when you discover problems
with the software.
Its not a good idea to compress the Hands On .EXEs. If you
have used pklite or diet or something similar on them, please
replace the .EXE's with the original versions.
For technical support, either call (604) 433-5189, or write to
Suite 606 - 6455 Willingdon Avenue, Burnaby, British Columbia,
Canada, V5H 4E4. Both registered and soon to be registered
users currently get the same support without any arbitrary
time limit. You may also try leaving a Compuserve message at
75020, 2664, but be aware that messages rapidly 'scroll off'
Compuserve. The best electronic message area (also available
from Compuserve) is via the internet at:
The HANDS ON Wizard manual Page 18
INTERNET:vic_williams@mindlink.bc.ca.
P. C. Softsmith
Suite 606 6455 Willingdon Ave
Burnaby, B. C., Canada
V5H 4E4
ASP Introduction:
Please also carefully read the accompanying SHR_WARE.DOC
document.
"This program is produced by a member of the Association of
Shareware Professionals (ASP). ASP wants to make sure that
the shareware principle works for you. If you are unable to
resolve a shareware-related problem with an ASP member by
contacting the member directly, ASP may be able to help. The
ASP Ombudsman can help you resolve a dispute or problem with
an ASP member, but does not provide technical support for
members' products. Please write to the ASP Ombudsman at 545
Grover Road, Muskegon, MI 49442 or send a CompuServe message
via CompuServe Mail to ASP Ombudsman 70007,3536."
Warranty
THE DOCUMENTATION AND ASSOCIATED SOFTWARE ARE DISTRIBUTED AND
SOLD WITH NO WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING
ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE.
THE INFORMATION IN THIS DOCUMENTATION IS SUBJECT TO CHANGE
WITHOUT NOTICE AND DOES NOT REPRESENT A COMMITTMENT ON THE
PART OF THE VENDOR.
OTHER PRODUCT AND BRAND NAMES MENTIONED ARE TRADEMARKS OR
REGISTERED TRADEMARKS OF THEIR RESPECTIVE HOLDERS. FOR
INFORMATION ONLY, PORTIONS OF THIS DOCUMENT AND THE SOFTWARE
ARE LICENSED COPYRIGHT MATERIAL COURTESY DOUGLAS THOMSON.
Portions of this document and associated documents and
software are Copyright (C)1994 P. C. Softsmith All Rights
Reserved.
Appendix A - Special keys
These special keys must be entered exactly as shown (with the
exception that case is not significant): for example, Wizard
will not recognize <Control-Up> or <Ctrl Up> - it must be
<Ctrl-Up> or <ctrl-up> etc.
The HANDS ON Wizard manual Page 19
<Ctrl-@> <X> <Alt-180> <Alt-P>
<Ctrl-A> <Y> <Alt-181> <Alt-Q>
<Ctrl-B> <Z> <Alt-182> <Alt-R>
<Ctrl-C> <[> <Alt-183> <Alt-S>
<Ctrl-D> <\> <Alt-184> <Alt-T>
<Ctrl-E> <]> <Alt-185> <Alt-U>
<Ctrl-F> < <Alt-186> <Alt-V>
<Ctrl-G> <_> <Alt-187> <Alt-W>
<Ctrl-H> <`> <Alt-188> <Alt-X>
<BackSpace> <a> <Alt-189> <Alt-Y>
<Ctrl-I> <b> <Alt-190> <Alt-Z>
<Tab> <c> <Alt-191> <F1>
<Ctrl-J> <d> <Alt-192> <F2>
<Ctrl-K> <e> <Alt-193> <F3>
<Ctrl-L> <f> <Alt-194> <F4>
<Ctrl-M> <g> <Alt-195> <F5>
<Enter> <h> <Alt-196> <F6>
<Ctrl-N> <i> <Alt-197> <F7>
<Ctrl-O> <j> <Alt-198> <F8>
<Ctrl-P> <k> <Alt-199> <F9>
<Ctrl-Q> <l> <Alt-200> <F10>
<Ctrl-R> <m> <Alt-201> <F11>
<Ctrl-S> <n> <Alt-202> <F12>
<Ctrl-T> <o> <Alt-203> <Shift-F1>
<Ctrl-U> <p> <Alt-204> <Shift-F2>
<Ctrl-V> <q> <Alt-205> <Shift-F3>
<Ctrl-W> <r> <Alt-206> <Shift-F4>
<Ctrl-X> <s> <Alt-207> <Shift-F5>
<Ctrl-Y> <t> <Alt-208> <Shift-F6>
<Ctrl-Z> <u> <Alt-209> <Shift-F7>
<Ctrl-[> <vq> <Alt-210> <Shift-F8>
<Esc><w> <Alt-211> <Shift-F9>
<Ctrl-\> <x> <Alt-212> <Shift-F10>
<Ctrl-]> <y> <Alt-213> <Shift-F11>
<Ctrl- <z> <Alt-214> <Shift-F12>
<Ctrl-_> <{> <Alt-215> <Ctrl-F1>
< > <|> <Alt-216> <Ctrl-F2>
<!> <}> <Alt-217> <Ctrl-F3>
<"> <~? <Alt-218> <Ctrl-F4>
<#> <Alt-127> <Alt-219> <Ctrl-F5>
<$> <Alt-128> <Alt-220> <Ctrl-F6>
<%> <Alt-129> <Alt-221> <Ctrl-F7>
<&> <Alt-130> <Alt-222> <Ctrl-F8>
<'> <Alt-131> <Alt-223> <Ctrl-F9>
<(> <Alt-132> <Alt-224> <Ctrl-F10>
<)> <Alt-133> <Alt-225> <Ctrl-F11>
<*> <Alt-134> <Alt-226> <Ctrl-F12>
<+> <Alt-135> <Alt-227> <Alt-F1>
<,> <Alt-136> <Alt-228> <Alt-F2>
<-> <Alt-137> <Alt-229> <Alt-F3>
The HANDS ON Wizard manual Page 20
<.> <Alt-138> <Alt-230> <Alt-F4>
</> <Alt-139> <Alt-231> <Alt-F5>
<0> <Alt-140> <Alt-232> <Alt-F6>
<1> <Alt-141> <Alt-233> <Alt-F7>
<2> <Alt-142> <Alt-234> <Alt-F8>
<3> <Alt-143> <Alt-235> <Alt-F9>
<4> <Alt-144> <Alt-236> <Alt-F10>
<5> <Alt-145> <Alt-237> <Alt-F11>
<6> <Alt-146> <Alt-238> <Alt-F12>
<7> <Alt-147> <Alt-239> <Alt-1>
<8> <Alt-148> <Alt-240> <Alt-2>
<9> <Alt-149> <Alt-241> <Alt-3>
<:> <Alt-150> <Alt-242> <Alt-4>
<;> <Alt-151> <Alt-243> <Alt-5>
<<> <Alt-152> <Alt-244> <Alt-6>
<=> <Alt-153> <Alt-245> <Alt-7>
<>> <Alt-154> <Alt-246> <Alt-8>
<?> <Alt-155> <Alt-247> <Alt-9>
<@> <Alt-156> <Alt-248> <Alt-0>
<A> <Alt-157> <Alt-249> <Alt ->
<B> <Alt-158> <Alt-250> <Alt =>
<C> <Alt-159> <Alt-251> <Up>
<D> <Alt-160> <Alt-252> <Down>
<E> <Alt-161> <Alt-253> <Left>
<F> <Alt-162> <Alt-254> <Right>
<G> <Alt-163> <Alt-255> <PgUp>
<H> <Alt-164> <Ctrl-Break> <PgDn>
<I> <Alt-165> <Alt-A> <Ins>
<J> <Alt-166> <Alt-B> <Del>
<K> <Alt-167> <Alt-C> <Home>
<L> <Alt-168> <Alt-D> <End>
<M> <Alt-169> <Alt-E> <Ctrl-Up>
<N> <Alt-170> <Alt-F> <Ctrl-Down>
<O> <Alt-171> <Alt-G> <Ctrl-Left>
<P> <Alt-172> <Alt-H> <Ctrl-Right>
<Q> <Alt-173> <Alt-I> <Ctrl-PgUp>
<R> <Alt-174> <Alt-J> <Ctrl-PgDn>
<S> <Alt-175> <Alt-K> <Ctrl-Home>
<T> <Alt-176> <Alt-L> <Ctrl-End>
<U> <Alt-177> <Alt-M>
<V> <Alt-178> <Alt-N>
<W> <Alt-179> <Alt-O>
Note that these special keys must be entered exactly as shown
(with the exception that case is not significant): for
example, Wizard will not recognize <Control-Up> or <Ctrl Up> -
it must be <Ctrl-Up> or
<ctrl-up> etc.
The HANDS ON Wizard manual Page 21
Appendix B - Acknowledgments and history
This product has been developed with the co-operation of the
author, and a proportion of each registration is being
forwarded to the primary author Douglas Thomson.
A brief history:
May, 1994 Reworked documentation and product name. Ver. 1.6
24-Nov-93 made cut eliminate trailing spaces. Ver. 1.6
19-May-93 added enable and disable keyboard functions
15-Jun-92 initial release. Version 1.0
Appendix C - ShareWare Vendor Notice (if any)
If you are a shareware vendor, please feel free to replace
this with your standard notice.